package com.cosmoplat.xikai.business.domain.back;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @ClassName EquipmentStatusBackup
 * @Description 设备运行状态监测表
 * @Author wdf
 * @Date 2025/2/6
 */
@TableName("EquipmentStatus_Backup")
@Data
public class EquipmentStatusBackup implements Serializable {

    /**
     * 主键
     */
    @TableId(value = "Primarykey", type = IdType.ASSIGN_ID)
//    @TableField(value = "Primarykey")
    @ApiModelProperty(value = "主键", example = "1")
    private Long primaryKey;

    /**
     * 设备编号
     */
    @TableField(value = "DeviceCode")
    @ApiModelProperty(value = "设备编号", example = "EQP001")
    private String deviceCode;

    /**
     * 设备状态信息，关机/开机/报警/故障（包括但不限于）
     */
    @TableField(value = "DeviceStatus")
    @ApiModelProperty(value = "设备状态信息，关机/开机/报警/故障（包括但不限于）", example = "开机")
    private String deviceStatus;

    /**
     * 如开机/关机/报警/故障等状态变化时的时间
     */
    @TableField(value = "StatusTime")
    @ApiModelProperty(value = "如开机/关机/报警/故障等状态变化时的时间")
    private String statusTime;

    /**
     * 设备状态信息，关机（0）/开机（1）/报警（2）/故障（3）
     */
    @TableField(value = "StatusCode")
    @ApiModelProperty(value = "设备状态信息，关机（0）/开机（1）/报警（2）/故障（3）", example = "1")
    private String statusCode;

    /**
     * 如状态为故障/报警，记录故障/报警代码。
     */
    @TableField(value = "MalfunctionCode")
    @ApiModelProperty(value = "如状态为故障/报警，记录故障/报警代码。", example = "ERR001")
    private String malfunctionCode;

    /**
     * 如状态为故障/报警，记录故障/报警名称。
     */
    @TableField(value = "MalfunctionName")
    @ApiModelProperty(value = "如状态为故障/报警，记录故障/报警名称。", example = "电源故障")
    private String malfunctionName;

    /**
     * 如状态为故障/报警，记录故障/报警说明。
     */
    @TableField(value = "Malfunctionexplain")
    @ApiModelProperty(value = "如状态为故障/报警，记录故障/报警说明。", example = "电源电压过低")
    private String malfunctionExplain;

    /**
     * 数据转移标志，转移后为1
     */
    @TableField(value = "Flag")
    @ApiModelProperty(value = "数据转移标志，转移后为1", example = "0")
    private Character flag = 0;

    /**
     * 备注
     */
    @TableField(value = "Remark")
    @ApiModelProperty(value = "备注", example = "无")
    private String remark;


    /**
     * 报警是否解除字段
     *
     * 状态表，标准里的字段，没有体现报警解除状态， 增加一个报警是否解除字段  alarmRemove
     *
     * 1.当产生报警时，其他字段正常存，alarmRemove存1，
     *
     * 2.当一个报警解除时，存一条报警解除数据，即把这条报警再存一条，alarmRemove存0，
     *
     * 3.当一个报警解除时，需额外再查询设备是否还有报警
     *
     * 如果没有报警了，根据设备的当前状态，再存一条 运行/开机/待机
     *
     * 如果还有其他报警，只进行第二步即可。
     */
    @TableField(value = "alarmRemove")
    @ApiModelProperty(value = "报警是否解除字段", example = "0")
    private String alarmRemove;
}
